<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>11_Promise-Promise类方法reject</title>
  <!-- 
  在 JavaScript 中， `Promise`  类的  `reject`  方法是一个静态方法，用于返回一个以给定原因拒绝的  `Promise`  对象。
  1. 基本概念
  -  `Promise.reject(reason)` ：该方法返回一个已拒绝状态的  `Promise`  对象。
  - 用途：用于创建一个拒绝的  `Promise` ，通常用于处理错误情况。

  2. 语法
  Promise.reject(reason);
  -  `reason` ：可以是任何值，通常是一个错误对象，表示拒绝的原因。

  3. 返回值
  -  `Promise.reject`  方法返回一个新创建的  `Promise`  对象，其状态设置为已拒绝（rejected），其拒绝的原因为  `reason` 。

  4. 示例代码

   4.1 处理简单拒绝
  const promise1 = Promise.reject(new Error("Something went wrong"));
  promise1.catch(error => {
      console.log(error.message); // 输出: Something went wrong
  });
   4.2 处理自定义错误
  const promise2 = Promise.reject("This is a custom error message");
  promise2.catch(error => {
      console.log(error); // 输出: This is a custom error message
  });
   4.3 与其他 Promise 结合使用
  const promise3 = new Promise((resolve, reject) => {
      // 模拟异步操作
      setTimeout(() => {
          reject(new Error("Failed after 1 second"));
      }, 1000);
  });

  const promise4 = Promise.reject(promise3);
  promise4.catch(error => {
      console.log(error.message); // 输出: Failed after 1 second
  });
  5. 注意事项
  -  `Promise.reject`  方法不会处理任何错误，它只是创建一个已拒绝的  `Promise` 。如果需要处理异步操作中的错误，通常会在  `Promise`  的执行函数中使用  `reject` 。
  - 使用  `Promise.reject`  可以方便地将错误情况转换为  `Promise` ，使得在使用  `Promise`  链式调用时更为一致。

  6. 总结
  `Promise.reject`  方法是创建已拒绝状态  `Promise`  的便捷方式。它可以处理各种类型的错误原因，使得在处理异步操作时可以更好地管理错误情况。理解  `Promise.reject`  的用法对于编写可靠的异步代码非常重要。
  -->
</head>
<body>

  <script>
    // Promise.reject(reason)方法返回一个被拒绝的Promise对象，参数reason会原封不动地作为reject的理由，变成后续方法的参数
    // Promise.reject()方法会立即执行，不像Promise.resolve()方法会等待传入的Promise对象执行完成
    // Promise.reject()方法返回的Promise对象，状态总是为rejected
    // Promise.reject()方法返回的Promise对象，状态总是为rejected，无论传入的参数是什么
    // Promise.reject()方法返回的Promise对象，状态总是为rejected，无论传入的参数是什么

    const promise = Promise.reject('rejected errer');
    promise.catch(err => {
      console.log(err);
    })
    // 相当于
    // new Promise((_, reject) => {
    //   reject("rejected error")
    // })


  </script>
  
</body>
</html>